package com.mars.deepseek.model.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * DeepSeek聊天请求DTO
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Schema(description = "DeepSeek聊天请求参数")
public class ChatRequest {

    @Schema(description = "聊天消息列表", required = true)
    private List<Message> messages;

    @Schema(description = "模型名称", defaultValue = "deepseek-chat")
    private String model;

    @Schema(description = "随机性参数，值越大回复越随机", defaultValue = "0.7")
    private Float temperature;

    @Schema(description = "生成内容的最大token数", defaultValue = "2048")
    private Integer maxTokens;

    @Schema(description = "流式响应", defaultValue = "false")
    private Boolean stream;

    @Schema(description = "用户标识")
    private String user;

    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    @Schema(description = "聊天消息")
    public static class Message {
        
        @Schema(description = "消息角色，system/user/assistant", required = true)
        private String role;
        
        @Schema(description = "消息内容", required = true)
        private String content;
    }
} 